//
//  YSAVPlayerManager.h
//  Pods-YSPlayer_iOS_Example
//
//  Created by 宋宏康 on 2020/2/12.
//

#import <Foundation/Foundation.h>
#import <Masonry/Masonry.h>
#import <YYKit/YYKit.h>
#import <ZFPlayer/ZFPlayer.h>
#import <ZFPlayer/ZFAVPlayerManager.h>
#import <ZFPlayer/ZFPlayerControlView.h>
#import <ReactiveObjC/ReactiveObjC.h>
#import <ZFPlayer/ZFUtilities.h>
#import <ZFPlayer/UIImageView+ZFCache.h>

NS_ASSUME_NONNULL_BEGIN

@interface YSAVPlayerManager : NSObject

/// 对象初始化方法
/// @param frame 视频播放器的frame
/// @param currentView 视频播放前存在的视图
- (instancetype)initWithCustomFrame:(CGRect)frame
                    withCurrentView:(UIView *)currentView;
/// 对象初始化方法
/// @param view 视频播放器放的view.填充整个view
- (instancetype)initWithPlayerView:(UIView *)view;
/// 播放路径
@property (nonatomic, strong) NSArray<NSURL *> *assetURLs;
/// 播放的标题
@property (nonatomic, strong) NSArray <NSString *> *titles;
/// 允许后台播放
@property (nonatomic, assign) BOOL pauseWhenAppResignActive;
/// 网络封面图
@property (nonatomic, strong) NSString *corverNetImgUrl;
/// 从第几个视频开始播放，默认从1开始播放
@property (nonatomic, assign) NSInteger playerIndex;
/// 当前播放器控制器消失，而不是dealloc
@property (nonatomic, getter=isViewControllerDisappear) BOOL viewControllerDisappear;
/// 状态栏显示状态
@property (nonatomic, getter=isStatusBarHidden) BOOL statusBarHidden;
#pragma mark - 播放状态回调
///// 播放成功 未实现
//@property (nonatomic, copy) void(^playDidSuccess)(void);
//
///// 播放失败 未实现
//@property (nonatomic, copy) void(^playDidFaild)(NSError *error);
//

/// 播放完成
/// 可以做一些操作 重复播放、播放下一集、播放上一集
@property (nonatomic, copy) void(^playDidFinish)(void);
#pragma mark - 功能方法

/// 播放完成后，调用此方法可以指定播放
/// @param index 播放的视频下表
- (void)playerIndex:(NSInteger)index;

/// 重新播放
- (void)playerReplay;

/// 暂停播放
- (void)playerStop;

/// 下一集
- (void)playTheNext;

/// 上一集
- (void)playThePrevious;

@end

NS_ASSUME_NONNULL_END
